package net.esj.basic.dao;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

import net.esj.basic.pojo.UpdateType;

public interface Dao {

	/**
	 * 保存或修改对象，根据ID是否存在判别
	 * @param entity
	 */
	public void saveOrUpdate(Object entity) ;
	
	/**
	 * 删除对象
	 * @param entity
	 */
	public void delete(Object entity);
	
	/**
	 * 删除集合
	 * @param c
	 */
	public void deleteAll(Collection c);
	
	public <T> List<T> findAll(Class<T> clazz);
	
	public <T> List<T> findAll(Class<T> clazz,boolean cachable);
	
	public <T> T get(Serializable id,Class<T> clazz);
	
	public void save(Object entity) ;
	
	public void update(Object entity);
	
	public void update(Object entity,UpdateType type);
	
	List query(String queryStr);
	
	void execute(String executeStr);
}
